'''实现读取选择目录下的文件，写入到指定数据库表中'''
import pymysql
import os

#打开数据库连接
db = pymysql.connect(host="localhost", user="root", password="qazwsx123", database="park_data_db", charset="utf8")

def execute(sql, value=None):
    """ 进行添加，修改操作 """
    # 获取游标和连接
    cursor = db.cursor()
    try:
        # 获取游标
        res = cursor.execute(sql, value)
        db.commit()
        return res
    except Exception as ex:
        print("执行SQL语句出错：", ex)
        db.rollback()
        return None
    finally:
        cursor.close()

def get_file_list(path):
    '''获取指定目录下的所有文件（相对于path的相对路径）'''
    file_list = []
    for root, dirs, files in os.walk(path):
        for file in files:
            # 获取文件的绝对路径
            abs_path = os.path.join(root, file)
            # 转换为相对于输入path的相对路径
            rel_path = os.path.relpath(abs_path, start=path)
            file_list.append(rel_path)
    return file_list

def insert_file_to_db(file_list):
    '''将文件列表插入数据库'''
    for file in file_list:
        # 获取文件名
        file_name = os.path.basename(file)

        # 插入数据到数据库
        sql = "INSERT INTO prk_documents (park_code, park_name, doc_source, doc_type, description, doc_year, file_type, file_path, doc_status, remarks) \
              VALUES ('yssh', '中国石油化工股份有限公司北京燕山分公司', '调查收集', '调查报告', %s, 2025, 'pdf', %s, 1, '')"
        execute(sql, (file_name, file))
        print(f"已插入文件：{file_name}")


if __name__ == "__main__":
    path = input("请输入目录路径：")
    file_list = get_file_list(path)
    insert_file_to_db(file_list)
    db.close()
    print("文件信息已成功写入数据库。")